<?php
/**
 * 表单控制工具类
 *
 * Class Form
 */
class FormExt {

	protected static $inline=false;
	protected static $inputInline=true;

	/**
	 * 设置外层行内
	 *
	 * @author KING
	 * @date 2020年7月21日
	 *
	 */
	public static function setInline($status=true) {
		self::$inline=$status;
	}

	/**
	 * 设置内层行内
	 *
	 * @author KING
	 * @date 2020年7月21日
	 *
	 */
	public static function setInputInline($status=true) {
		self::$inputInline=$status;
	}

	private static function render($label, $control, $isUpload=false) {
		$html = '<div class="'.(self::$inline?'layui-inline':'layui-form-item').'">
                    <label class="layui-form-label">'.$label.'</label>
                    <div class="'.(self::$inputInline?'layui-input-inline':'layui-input-block').' '.($isUpload?'upload':'').'">';
		$html .= $control;
		$html .= '  </div>
                </div>';
		return $html;
	}

	/**
	 * 显示文本
	 *
	 * @author KING
	 * @date 2020年7月30日
	 *
	 * @param string $label	显示文本标签
	 * @param string $value	显示内容
	 * @param bool $input	是否显示input控件
	 * @return string
	 */
	public static function showText($label, $value, $input=false) {
		if ($input) {
			$value = '<input type="text" class="layui-input" tabindex=-1 value="'.$value.'" autocomplete="off" readonly>';
		} else {
			$value = '<span style="line-height:38px;">'.$value.'</span>';
		}
		return self::render($label, $value);
	}

	/**
	 * 单行文本输入框
	 *
	 * @author KING
	 * @date 2020年6月10日
	 *
	 * @param string $label			控件显示文案
	 * @param string $name			控件name
	 * @param string $value			控件value
	 * @param string $placeholder	控件提示信息
	 * @param string $class			控件类名
	 * @param string $attr			控件其它属性
	 * @return string
	 */
	public static function input($label, $name, $value='', $placeholder='', $class='', $attr=''){
		return self::render($label, Form::input($name, $value, $placeholder, $class, $attr));
	}

	/**
	 * 隐藏文本框
	 *
	 * @author KING
	 * @date 2020年6月10日
	 *
	 * @param string $label			控件显示文案
	 * @param string $name			控件name
	 * @param string $value			控件value
	 * @param string $id			控件id
	 * @return string
	 */
	public static function hidden($label, $name, $value='', $id=''){
		return self::render($label, Form::hidden($name, $value, $id));
	}

	/**
	 * 多行文本输入框
	 *
	 * @author KING
	 * @date 2020年6月10日
	 *
	 * @param string $label			控件显示文案
	 * @param string $name			控件name
	 * @param string $value			控件value
	 * @param string $id			控件id
	 * @param string $placeholder	控件提示信息
	 * @param string $class			控件类名
	 * @param string $attr			控件其它属性
	 * @return string
	 */
	public static function textarea($label, $name, $value='', $id='', $placeholder='', $class='', $attr=''){
		return self::render($label, Form::textarea($name, $value, $id, $placeholder, $class, $attr));
	}

	/**
	 * 开关切换
	 *
	 * @author KING
	 * @date 2020年6月10日
	 *
	 * @param string $label			控件显示文案
	 * @param string $name			控件name
	 * @param string $value			控件value（1或0）
	 * @param string $text			控件显示文本（如：开启|关闭）
	 * @param string $attr			控件其它属性
	 * @return string
	 */
	public static function switch($label, $name, $value='', $text='', $attr=''){
		return self::render($label, Form::switch($name, $value, $text, $attr));
	}

	/**
	 * 下拉框
	 *
	 * @author KING
	 * @date 2020年6月10日
	 *
	 * @param string $label			控件显示文案
	 * @param string $name			控件name
	 * @param string $value			控件value
	 * @param array $options		控件选项
	 * @param string $id			控件id
	 * @param string $class			控件类名
	 * @param string $attr			控件其它属性
	 * @return string
	 */
	public static function select($label, $name, $value='', $options=[], $id='', $class='', $attr=''){
		return self::render($label, Form::select($name, $value, $options, $id, $class, $attr));
	}

	/**
	 * 单选
	 *
	 * @author KING
	 * @date 2020年6月10日
	 *
	 * @param string $label			控件显示文案
	 * @param string $name			控件name
	 * @param string $value			控件value
	 * @param array $options		控件选项
	 * @param string $class			控件类名
	 * @param string $attr			控件其它属性
	 * @return string
	 */
	public static function radio($label, $name, $value='', $options=[], $class='', $attr=''){
		return self::render($label, Form::radio($name, $value, $options, $class, $attr));
	}

	/**
	 * 多选
	 *
	 * @author KING
	 * @date 2020年6月10日
	 *
	 * @param string $label			控件显示文案
	 * @param string $name			控件name
	 * @param array $checked		已选中项
	 * @param array $options		控件选项
	 * @param string $class			控件类名
	 * @param string $attr			控件其它属性
	 * @return string
	 */
	public static function checkbox($label, $name, $checked='', $options=[], $class='', $attr=''){
		return self::render($label, Form::checkbox($name, $checked, $options, $class, $attr));
	}

	/**
	 * 日期
	 *
	 * @author KING
	 * @date 2020年6月10日
	 *
	 * @param string $label			控件显示文案
	 * @param string $name			控件name
	 * @param string $value			控件value
	 * @param string id				控件id
	 * @param string $placeholder	控件提示信息
	 * @param string $class			控件类名
	 * @param string $attr			控件其它属性
	 * @return string
	 */
	public static function date($label, $name, $value='', $id='', $placeholder='', $class='', $attr=''){
		return self::render($label, Form::date($name, $value, $id, $placeholder, $class, $attr));
	}

	/**
	 * 时间
	 *
	 * @author KING
	 * @date 2020年6月10日
	 *
	 * @param string $label			控件显示文案
	 * @param string $name			控件name
	 * @param string $value			控件value
	 * @param string id				控件id
	 * @param string $placeholder	控件提示信息
	 * @param string $class			控件类名
	 * @param string $attr			控件其它属性
	 * @return string
	 */
	public static function time($label, $name, $value='', $id='', $placeholder='', $class='', $attr=''){
		return self::render($label, Form::time($name, $value, $id, $placeholder, $class, $attr));
	}

	/**
	 * 日期+时间
	 *
	 * @author KING
	 * @date 2020年6月10日
	 *
	 * @param string $label			控件显示文案
	 * @param string $name			控件name
	 * @param string $value			控件value
	 * @param string id				控件id
	 * @param string $placeholder	控件提示信息
	 * @param string $class			控件类名
	 * @param string $attr			控件其它属性
	 * @return string
	 */
	public static function datetime($label, $name, $value='', $id='', $placeholder='', $class='', $attr=''){
		return self::render($label, Form::datetime($name, $value, $id, $placeholder, $class, $attr));
	}

	/**
	 * 图片上传
	 *
	 * @author KING
	 * @date 2020年6月10日
	 *
	 * @param string $label			控件显示文案
	 * @param string $name			控件name
	 * @param string $value			控件value
	 * @param string $src			图片显示地址
	 * @param string $btnText		按钮显示文本
	 * @return string
	 */
	public static function image($label, $name, $value='', $src='', $btnText='请上传图片'){
		return self::render($label, Form::image($name, $value, $src, $btnText), true);
	}

	/**
	 * 文件上传
	 *
	 * @author KING
	 * @date 2020年6月10日
	 *
	 * @param string $label			控件显示文案
	 * @param string $name			控件name
	 * @param string $value			控件value
	 * @param string $btnText		按钮显示文本
	 * @return string
	 */
	public static function file($label, $name, $value='', $btnText='请上传文件'){
		return self::render($label, Form::file($name, $value, $btnText), true);
	}
}